我們可以利用 Odoo 後台便捷的查詢功能,快速了解 Odoo 從選單 (menu) 點選、呼叫 Window Action、開啟畫面 (view) 與模組程式之間的對應關係。透過後台的開發者模式(Debug Mode)進行查詢,可以節省大量時間。以下以 repair 模組為例進行說明:
我們可以在github看到repair模組的檔案:
進入repair_views.xml,這是odoo在撰寫畫面控制與顯示的資訊,通常在最下面是放選單的資訊
對應在odoo的後台系統查詢,當我們切換至debug mode(參考前篇說明),可以進入選單的控制畫面,搜尋order選單可以查詢到對應的資訊:
在畫面中,可以看到選單呼叫的action,對應repair_views.xml則是:
也可以直接從後台的repair order畫面,點選上方bug圖示,直接查詢對應的action,不必從menu開始找,可以依照方便的方式查詢:
開發者模式的選單可以直接查詢該畫面的view:
開啟後可以看到對應的資訊,如名稱、類型、畫面繼承的關係,以更直覺的方式了解odoo的架構:
透過比對的方式,可以幫助我們了解odoo的控制方式:
還有許多控制項目,例如:Search View、篩選的 Context 以及權限資料的控制。由於 Odoo 的架構,在模組安裝時,相關的 XML 已經存入資料庫,執行程式時也是從資料庫中渲染畫面,而不是讀取原始檔案。因此,透過直接在 Odoo 後台中修改和測試,可以更快掌握語法的效果。
備註:如上述所提,如果撰寫的繼承模組中修改了畫面 (XML) 的內容,模組需要執行更新,才能將畫面資訊同步更新至資料庫;但如果修改的是 Python 程式,則只需重啟 Odoo 即可。
既然我們可以透過後台快速查詢 Window Action 或 View,在開啟的資訊中,我們同時可以獲取到對應的 model 名稱。此時,我們可以在「設定」中查詢該 model,並檢視資料表的欄位資訊。
對照著github中的repair.py
透過上述方式,我們可以快速了解 Odoo 的檔案結構以及其中的撰寫方式,這樣在進行二次開發時,就能夠快速分析並掌握所需介入的資訊,不至於像大海撈針般無從下手。以上是一個簡單的示範說明,供參考。其餘更多的對應關係可以透過後台自行查詢和探索。Odoo 的後台實際上就扮演著功能查詢的角色,不再需要為沒有說明書或規格書而煩惱!